<?php
//  ----------------------------------------------------------------------
// | 后台用户认证入口
//  ----------------------------------------------------------------------
// | @该文件不需要通过RBAC认证
//  ----------------------------------------------------------------------
// | Author: 李乾坤 <261001642@qq.com>
//  ----------------------------------------------------------------------

class PublicAction extends CommonAction {
	// 检查用户是否登录
	protected function checkUser() {
		if(!isset($_SESSION[C('USER_AUTH_KEY')])) {
			$this->assign('jumpUrl','?s=Public/login');
			$this->error('没有登录');
		}
	}
	// 顶部页面
	public function top() {
		C('SHOW_RUN_TIME',false);			// 运行时间显示
		C('SHOW_PAGE_TRACE',false);
		$model	=	M("Group");
		$list	=	$model->Field('id,title')->where('status=1')->select();
		$this->assign('nodeGroupList',$list);
		$this->display();
	}
	// 用户登录页面
	public function login() {
		if(!isset($_SESSION[C('USER_AUTH_KEY')])) {
			if(IS_POST){
				if(empty($_POST['account'])) {
					$this->error('帐号错误！');
				}elseif (empty($_POST['password'])){
					$this->error('密码必须！');
				}
        		import("ORG.Util.Verify");
        		$Verify=new Verify();
				if(!$Verify->check($_POST['verify'],'Login')){
					$this->error('验证码错误!');
				}
				//生成认证条件
				$map            =   array();
				// 支持使用绑定帐号登录
				$map['account']	= $_POST['account'];
				$map["status"]	=	array('gt',0);
				$User	=	M('User');
		        $vo = $User->where($map)->find();
		        if(false === $vo) {
		            $this->error('帐号不存在或已禁用！');
		        }else {
					if($vo['password'] != md5($_POST['password'])) {
						$this->error('密码错误！');
					}			
		            Session::Set(C('USER_AUTH_KEY'),$vo['id']);
		            Session::Set('nickname',$vo['nickname']);
		            if($vo['id']==1) {
		            	Session::Set(C('ADMIN_AUTH_KEY'),true);
		            }
		            //保存登录信息
					$ip		=	get_client_ip();
					$time	=	time();
		            $data = array();
					$data['id']	=	$vo['id'];
					$data['last_login_time']	=	$time;
					$data['login_count']	=	array('exp','(login_count+1)');
					$data['last_login_ip']	=	$ip;
					$User->save($data);
					$this->success('登录成功！','admin.php');
				}
			}else{
				$this->display();
			}
			//redirect("?s=Public/login");
		}else{
			echo $_SESSION[C('USER_AUTH_KEY')];
			exit;
			redirect('?s=Index/index');
		}
	}

	public function index()
	{
		//如果通过认证跳转到首页
		redirect('?s=Index/index');
	}
	// 用户登出
    public function logout(){
        if(isset($_SESSION[C('USER_AUTH_KEY')])) {
			unset($_SESSION[C('USER_AUTH_KEY')]);
			unset($_SESSION);
			session_destroy();
            $this->assign("jumpUrl",'/');
            $this->success('登出成功！');
        }else {
            $this->error('已经登出！');
        }
    }
	// 验证码显示
    public function verify()
    {
        //
        //Image::buildImageVerify(4,1, 'png', 290, 130, 'TestVerify');
        import("ORG.Util.Verify");
        $Verify=new Verify();
        $Verify->entry('Login');
    }

}
?>